// import wx from 'weixin-js-sdk';
// import requestUtils from '@/http/request.js';
// import requsetApi from '@/api/home';

// #ifdef H5
import wx from "weixin-js-sdk";

import { jssdk } from "@/services/user";
// #endif

// 发起获取signature请求
async function getSignature(title, link, imgurl) {
  // var url = window.location.origin + '/';
  // var url = 'https://www.limaitang.com/'

  var url = link;
  var res = await jssdk({
    url: url,
  });
  setShare(res.data, title, link, imgurl);
}

// 设置分享数据
function setShare(signature, title, link, imgurl) {
  uni.setStorageSync("signature", JSON.stringify(signature));

  wx.config({
    debug: false, // 开启调试模式
    appId: signature.appId, // 必填，公众号的唯一标识
    timestamp: signature.timestamp, // 必填，生成签名的时间戳
    nonceStr: signature.nonceStr, // 必填，生成签名的随机串
    signature: signature.signature, // 必填，签名
    jsApiList: [
      "updateAppMessageShareData",
      "updateTimelineShareData",
      "onMenuShareTimeline",
      "onMenuShareAppMessage",
      "wx-open-launch-weapp",
    ], // 必填，需要使用的JS接口列表
    openTagList: ["wx-open-launch-app", "wx-open-launch-weapp"],
  });

  wx.ready(function () {
    wx.updateAppMessageShareData({
      title: title, // 分享标题
      desc: "进入查看", // 分享描述
      link: link.split("#")[0], // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: imgurl, // 分享图标
      success: function () {},
    });

    wx.updateTimelineShareData({
      title: title, // 分享标题
      link: link, // 分享链接
      imgUrl: imgurl, // 分享图标
      success: function () {},
    });
    wx.onMenuShareTimeline({
      title: title, // 分享标题
      link: link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: imgurl, // 分享图标
      success: function () {
        // 用户点击了分享后执行的回调函数
      },
    });
    wx.onMenuShareAppMessage({
      title: title, // 分享标题
      desc: "查看分享", // 分享描述
      link: link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
      imgUrl: imgurl, // 分享图标
      // type: '', // 分享类型,music、video或link，不填默认为link
      // dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
      success: function () {
        // 用户点击了分享后执行的回调函数
      },
    });
  });

  wx.error(function (res) {
    // 分享失败处理逻辑
    console.error("微信分享失败:", res);
  });
}

// 分享操作触发函数
function share(
  title = "分享标题",
  link = location.href.split("#")[0],
  imgurl = "https://lmt-app-cloud.yibaitao.com/20240420/a80079ef-050f-2f13-b6a3-82d0fa552d29.png"
) {
  getSignature(title, link, imgurl);
  return;
  const _signature = uni.getStorageSync("signature");
  if (_signature) {
    let signature = JSON.parse(_signature);
    // 检查签名是否过期（此处为示例逻辑，具体实现可能有所不同）
    if (isSignatureValid(signature)) {
      setShare(signature);
    } else {
      getSignature(); // 签名过期，重新获取
    }
  } else {
    getSignature(); // 签名不存在，直接获取
  }
}
// 检查签名是否有效的辅助函数（需要根据实际情况实现）
function isSignatureValid(signature) {
  // 实现签名有效性检查逻辑，比如对比时间戳等
  // 示例中省略了具体实现细节，需要开发者根据实际情况编写
  return true; // 假设签名始终有效（仅为示例）
}

function getUrlParams(param, k, p) {
  if (typeof param != "string") return {};
  k = k ? k : "&"; //整体参数分隔符
  p = p ? p : "="; //单个参数分隔符
  var value = {};
  if (param.indexOf(k) !== -1) {
    param = param.split(k);
    for (var val in param) {
      if (param[val].indexOf(p) !== -1) {
        var item = param[val].split(p);
        value[item[0]] = item[1];
      }
    }
  } else if (param.indexOf(p) !== -1) {
    var item = param.split(p);
    value[item[0]] = item[1];
  } else {
    return param;
  }
  return value;
}

export { share, getUrlParams };
